package com.cqq.common.core.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * <h3>密码加密工具类</h3>
 * 
 * @author xijq
 * @version 1.0.0
 * 
 */
public class PasswordEncoder {

	private static final Logger log = LoggerFactory.getLogger(PasswordEncoder.class);
	
	private PasswordEncoder(){}
	
	/**
	 * <h3>对密码明文进行加密编码</h3>
	 * 
	 * <p>
	 * 编码规则：
	 * 1.拼装编码前的明文：password+"@"+salt
	 * 2.对明文字符串进行SHA256签名，再进行MD5签名
	 * </p>
	 * 
	 * @param password 密码明文
	 * @param salt 加盐值
	 * 
	 * @return 加密后的密码字符串
	 * 
	 */
	public static String encode(String password, String salt){
		try {
			return DigestUtil.md5(DigestUtil.digest(password+"@"+salt, DigestUtil.SHA256));
		} catch (Exception e) {
			log.error(e.getMessage(),e);
			return null;
		}
	}
	
}
